package message

const (
	LoginMesType            = "LoginMes"
	LoginResMesType         = "LoginResMes"
	RegisterMesType         = "RegisterMes"
	RegisterResMesType      = "RegisterResMes"
	NotifyUserStatusMesType = "NotifyUserStatusMes"
	SmsMesType              = "SmsMesType"
	SmsMesSingeType         = "SmsMesSingeType"
	FileLoadType            = "FileLoad"
)

// 这里我们定义几个用户状态的常量
const (
	UserOnline = iota
	UserOffline
	UserBusyStatus
)

type Message struct {
	Type string `json:"type"` // 消息的类型
	Data string `json:"data"` // 消息的内容

}

// 定义两个消息
type LoginMes struct {
	UserId   int    `json:"userId"`   // 用户id
	UserPwd  string `json:"userPwd"`  // 用户密码
	UserName string `json:"userName"` // 用户名

}

type LoginResMes struct {
	Code    int    `json:"code"` // 返回状态码500 表示该用户未注册 200 表示登录成功
	UserIds []int  `json:"userIds" // 增加字段保存用户id 切片`
	Error   string `json:"error"` // 返回错误信息

}

type RegisterMes struct {
	User User `json:"user"` // 类型就是User结构体

}

type RegisterResMes struct {
	Code  int    `json:"code"`  // 返回状态码 400 ，表示该用户已经存在， 200 表示该用户注册成功
	Error string `json:"error"` // 返回错误信息
}

// 为了配合服务器端推送用户状态变化的消息
type NotifyUserStatusMes struct {
	UserId int `json:"userId"`
	Status int `json:"status"`
}

// 增加一个smsMes 发送的消息
type SmsMes struct {
	Content string `json:"content"` // 内容
	User           // 匿名结构体
	DistId  int    `json:"distId"` // 对方指定id

}

type FileLoadMes struct {
	FileName string `json:"fileName"`
	FileData []byte `json:fileData`
	FileLen  int    `json:"fileLen"`
}
